home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / auto_fs4.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  3KB  |  105 lines

  1. /* -*- c -*-
  2.  * linux/include/linux/auto_fs4.h
  3.  *
  4.  * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
  5.  *
  6.  * This file is part of the Linux kernel and is made available under
  7.  * the terms of the GNU General Public License, version 2, or at your
  8.  * option, any later version, incorporated herein by reference.
  9.  */
  10.  
  11. #ifndef _LINUX_AUTO_FS4_H
  12. #define _LINUX_AUTO_FS4_H
  13.  
  14. /* Include common v3 definitions */
  15. #include <linux/auto_fs.h>
  16.  
  17. /* autofs v4 definitions */
  18. #undef AUTOFS_PROTO_VERSION
  19. #undef AUTOFS_MIN_PROTO_VERSION
  20. #undef AUTOFS_MAX_PROTO_VERSION
  21.  
  22. #define AUTOFS_PROTO_VERSION        5
  23. #define AUTOFS_MIN_PROTO_VERSION    3
  24. #define AUTOFS_MAX_PROTO_VERSION    5
  25.  
  26. #define AUTOFS_PROTO_SUBVERSION        0
  27.  
  28. /* Mask for expire behaviour */
  29. #define AUTOFS_EXP_IMMEDIATE        1
  30. #define AUTOFS_EXP_LEAVES        2
  31.  
  32. /* Daemon notification packet types */
  33. enum autofs_notify {
  34.     NFY_NONE,
  35.     NFY_MOUNT,
  36.     NFY_EXPIRE
  37. };
  38.  
  39. /* Kernel protocol version 4 packet types */
  40.  
  41. /* Expire entry (umount request) */
  42. #define autofs_ptype_expire_multi    2
  43.  
  44. /* Kernel protocol version 5 packet types */
  45.  
  46. /* Indirect mount missing and expire requests. */
  47. #define autofs_ptype_missing_indirect    3
  48. #define autofs_ptype_expire_indirect    4
  49.  
  50. /* Direct mount missing and expire requests */
  51. #define autofs_ptype_missing_direct    5
  52. #define autofs_ptype_expire_direct    6
  53.  
  54. /* v4 multi expire (via pipe) */
  55. struct autofs_packet_expire_multi {
  56.     struct autofs_packet_hdr hdr;
  57.         autofs_wqt_t wait_queue_token;
  58.     int len;
  59.     char name[NAME_MAX+1];
  60. };
  61.  
  62. union autofs_packet_union {
  63.     struct autofs_packet_hdr hdr;
  64.     struct autofs_packet_missing missing;
  65.     struct autofs_packet_expire expire;
  66.     struct autofs_packet_expire_multi expire_multi;
  67. };
  68.  
  69. /* autofs v5 common packet struct */
  70. struct autofs_v5_packet {
  71.     struct autofs_packet_hdr hdr;
  72.     autofs_wqt_t wait_queue_token;
  73.     __u32 dev;
  74.     __u64 ino;
  75.     __u32 uid;
  76.     __u32 gid;
  77.     __u32 pid;
  78.     __u32 tgid;
  79.     __u32 len;
  80.     char name[NAME_MAX+1];
  81. };
  82.  
  83. typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
  84. typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
  85. typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
  86. typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
  87.  
  88. union autofs_v5_packet_union {
  89.     struct autofs_packet_hdr hdr;
  90.     struct autofs_v5_packet v5_packet;
  91.     autofs_packet_missing_indirect_t missing_indirect;
  92.     autofs_packet_expire_indirect_t expire_indirect;
  93.     autofs_packet_missing_direct_t missing_direct;
  94.     autofs_packet_expire_direct_t expire_direct;
  95. };
  96.  
  97. #define AUTOFS_IOC_EXPIRE_MULTI        _IOW(0x93,0x66,int)
  98. #define AUTOFS_IOC_EXPIRE_INDIRECT    AUTOFS_IOC_EXPIRE_MULTI
  99. #define AUTOFS_IOC_EXPIRE_DIRECT    AUTOFS_IOC_EXPIRE_MULTI
  100. #define AUTOFS_IOC_PROTOSUBVER        _IOR(0x93,0x67,int)
  101. #define AUTOFS_IOC_ASKUMOUNT        _IOR(0x93,0x70,int)
  102.  
  103.  
  104. #endif /* _LINUX_AUTO_FS4_H */
  105.